var DateUtil = {
	addDay:function(val,num,strFmt){
		var val = val.replace('年','/').replace('月','/').replace('日','').replace('-','/');
		var date = new Date(Date.parse(val)+parseInt(86400000)*num);
		return DateUtil.format(date,strFmt);
	},
	subDay:function(val,num,strFmt){
		var val = val.replace('年','/').replace('月','/').replace('日','').replace('-','/');
		var date = new Date(Date.parse(val)-parseInt(86400000)*num);
		return DateUtil.format(date,strFmt);
	},
	formatStr2Str:function(strD,mask){
		var date=new Date(Date.parse(strD.replace(/-/g, "/"))); 
		return DateUtil.format(date,mask);
	},
	getDaysInOneMonth:function(year, month){  
		month = parseInt(month,10);  
		var d= new Date(year,month,0);  
		return d.getDate();  
	}, 
	compareDate:function(o,s){
		var oDate=new Date(Date.parse(o.replace(/-/g, "/"))); 
		var sDate=new Date(Date.parse(s.replace(/-/g, "/"))); 
		if(oDate>=sDate){
			return true;
		}else{
			return false;
		}		
	},
	format:function (d,mask) {
		var zeroize = function (value, length) {
			if (!length) {
				length = 2;
			}
			value = String(value);
			for (var i = 0, zeros = ""; i < (length - value.length); i++) {
				zeros += "0";
			}
			return zeros + value;
		};
		return mask.replace(/"[^"]*"|'[^']*'|\b(?:d{1,4}|m{1,4}|M{1,4}|yy(?:yy)?|([hHMstT])\1?|[lLZ])\b/g, function ($0) {
			switch ($0) {
			  case "d":
				return d.getDate();
			  case "dd":
				return zeroize(d.getDate());
			  case "ddd":
				return ["Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat"][d.getDay()];
			  case "dddd":
				return ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"][d.getDay()];
			  case "M":
				return d.getMonth() + 1;
			  case "MM":
				return zeroize(d.getMonth() + 1);
			  case "MMM":
				return ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"][d.getMonth()];
			  case "MMMM":
				return ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"][d.getMonth()];
			  case "yy":
				return String(d.getFullYear()).substr(2);
			  case "yyyy":
				return d.getFullYear();
			  case "h":
				return d.getHours() % 12 || 12;
			  case "hh":
				return zeroize(d.getHours() % 12 || 12);
			  case "H":
				return d.getHours();
			  case "HH":
				return zeroize(d.getHours());
			  case "m":
				return d.getMinutes();
			  case "mm":
				return zeroize(d.getMinutes());
			  case "s":
				return d.getSeconds();
			  case "ss":
				return zeroize(d.getSeconds());
			  case "l":
				return zeroize(d.getMilliseconds(), 3);
			  case "L":
				var m = d.getMilliseconds();
				if (m > 99) {
					m = Math.round(m / 10);
				}
				return zeroize(m);
			  case "tt":
				return d.getHours() < 12 ? "am" : "pm";
			  case "TT":
				return d.getHours() < 12 ? "AM" : "PM";
			  case "Z":
				return d.toUTCString().match(/[A-Z]+$/);
			  default:
				return $0.substr(1, $0.length - 2);
			}
		});
	}
};	

